home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / ActiveX_Co1799029302004.psc / ActiveX Coder 4 / Classes / clsList.cls < prev    next >
Text File  |  2004-04-17  |  5KB  |  118 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "clsList"
  10. Attribute VB_GlobalNameSpace = True
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
  15. Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
  16. Option Explicit
  17.  
  18. '****************************************************************************************
  19. '* clsClassList - Editable cells for ListView Control                                   *
  20. '****************************************************************************************
  21. '*                                                                                      *
  22. '* Created By:      Aaron Thorp                                                         *
  23. '* Contact:         in_my_datto@hotmail.com                                             *
  24. '* Last Modified:   4th January 2004                                                    *
  25. '*                                                                                      *
  26. '****************************************************************************************
  27. '*                                                                                      *
  28. '* This class will provide click-to-edit cells in listviews.                            *
  29. '* To implement this class, the main form will need to have a listview and a textbox    *
  30. '* and declare these to the class by settings the properties "list" and "textbox"       *
  31. '*                                                                                      *
  32. '****************************************************************************************
  33. '* ISSUES/KNOWN BUGS:                                                                   *
  34. '*                                                                                      *
  35. '*  - There can only be one field that has GROW enabled.                                *
  36. '*  - This class will not work for ListViews that have columns that need to be accessed *
  37. '*    with Horizontal scrollbars.                                                       *
  38. '*  - If you click off the listview after editing, it will not save the changes and     *
  39. '*    clear the textbox until you click inside the listview again.                      *
  40. '****************************************************************************************
  41.  
  42. Private WithEvents mvarlist As ListView
  43. Attribute mvarlist.VB_VarHelpID = -1
  44. Private WithEvents mvartext As TextBox
  45. Attribute mvartext.VB_VarHelpID = -1
  46.  
  47. Private edit_item As ListItem
  48.  
  49. Private active_column As Integer
  50. Private edit_active As Boolean
  51.  
  52. Private old_cell_value As String
  53.  
  54. Private Px As Single, Py As Single
  55.  
  56. Private Const SET_LabelEdit = lvwManual
  57. Private Const SET_HideSelection = False
  58. Private Const SET_FullRowSelect = True
  59. Private Const SET_GridLines = True
  60. Private Const SET_View = lvwReport
  61.  
  62. Private Column As clsColumnSettings
  63. Private Columns As New Collection
  64.  
  65. Public Sub additem(item_text As String, ParamArray item_subitems() As Variant)
  66.  
  67.     Dim Item As ListItem, i As Integer
  68.     
  69.     Set Item = mvarlist.ListItems.Add(, , item_text)
  70.     
  71.     For i = 1 To UBound(item_subitems) + 1
  72.         If i < mvarlist.ColumnHeaders.Count Then Item.SubItems(i) = item_subitems(i - 1)
  73.     Next
  74.  
  75. End Sub
  76.  
  77. Public Sub addcolumn(col_name As String, col_key, col_width As Double, col_grow As Boolean, Optional col_edit As Boolean = False, Optional col_align As Integer = lvwColumnLeft, Optional col_show As Boolean = True)
  78. 'adds and defines the column header settings storing them in the clsColumnSettings collection
  79.  
  80.     Dim Col As ColumnHeader
  81.     
  82.     Set Column = New clsColumnSettings
  83.            
  84.     Column.colwidth = col_width
  85.     Column.align = col_align
  86.     Column.edit = col_edit
  87.     Column.grow = col_grow
  88.     Column.show = col_show
  89.     
  90.     Set Col = mvarlist.ColumnHeaders.Add(, col_key, col_name, col_width, col_align)
  91.     
  92.     Column.index = Col.index
  93.     
  94.     Columns.Add Column, col_key
  95.     
  96. End Sub
  97.  
  98. Public Property Set list(ByVal vData As Object)
  99.     
  100.     'define which listview control the class is controlling
  101.     Set mvarlist = vData
  102.  
  103. End Property
  104.  
  105. Public Property Get list() As Object
  106.     
  107.     Set list = mvarlist
  108.  
  109. End Property
  110.  
  111.  
  112. Private Sub Class_Initialize()
  113.  
  114.     edit_active = False
  115.     Set Columns = New Collection
  116.  
  117. End Sub
  118.